package com.iterator.controller.web.configManager;

import com.iterator.service.web.configManager.ConfigService;
import com.iterator.bean.web.lyh.configbean.ExpressConfig;
import com.iterator.bean.web.lyh.configbean.MallConfig;
import com.iterator.bean.web.lyh.configbean.OrderConfig;
import com.iterator.bean.web.lyh.configbean.WxConfig;
import com.iterator.bean.web.lyh.utils.BaseRespVO;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("admin/config")
public class ConfigController {

    @Autowired
    ConfigService configService;

    //获取商场配置(回显)
    @GetMapping("mall")
    @RequiresPermissions("admin:config:mall:list")
    public BaseRespVO mallConfig(){
        MallConfig mallConfig = configService.getMallConfig();
        return BaseRespVO.ok(mallConfig);
    }

    //设置商场配置
    @PostMapping("mall")
    @RequiresPermissions("admin:config:mall:updateConfigs")
    public BaseRespVO mallConfig(@RequestBody MallConfig config){
        configService.setMallConfig(config);
        return BaseRespVO.ok();
    }

    //获取运费配置(回显)
    @GetMapping("express")
    @RequiresPermissions("admin:config:express:list")
    public BaseRespVO expressConfig(){
        ExpressConfig expressConfig = configService.getExpressConfig();
        return BaseRespVO.ok(expressConfig);
    }

    //设置运费配置
    @PostMapping("express")
    @RequiresPermissions("admin:config:express:updateConfigs")
    public BaseRespVO expressConfig(@RequestBody ExpressConfig config){
        configService.setExpressConfig(config);
        return BaseRespVO.ok();
    }

    //获取订单配置(回显)
    @GetMapping("order")
    @RequiresPermissions("admin:config:order:list")
    public BaseRespVO orderConfig(){
        OrderConfig orderConfig = configService.getOrderConfig();
        return BaseRespVO.ok(orderConfig);
    }

    //设置订单配置
    @PostMapping("order")
    @RequiresPermissions("admin:config:order:updateConfigs")
    public BaseRespVO orderConfig(@RequestBody OrderConfig config){
        configService.setOrderConfig(config);
        return BaseRespVO.ok();
    }

    //获取小程序配置(回显)
    @GetMapping("wx")
    @RequiresPermissions("admin:config:wx:list")
    public BaseRespVO wxConfig(){
        WxConfig wxConfig = configService.getWxConfig();
        return BaseRespVO.ok(wxConfig);
    }

    //设置小程序配置
    @PostMapping("wx")
    @RequiresPermissions("admin:config:wx:updateConfigs")
    public BaseRespVO wxConfig(@RequestBody WxConfig config){
        configService.setWxConfig(config);
        return BaseRespVO.ok();
    }
}
